x86-64: reduce range spanned by 1:1 mapping and frame table indexes
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 22 Sep 2009 07:16:49 +0000 (08:16 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 22 Sep 2009 07:16:49 +0000 (08:16 +0100)
commitbac2000063ba239d33b631f6edda48cc6b57425b
tree1202e917a4903bdf3975f4ba018c8a4233c80973
parent615588563e99a23aaf37037c3fee0c413b051f4d
x86-64: reduce range spanned by 1:1 mapping and frame table indexes

Introduces a virtual space conserving transformation on the MFN thus
far used to index 1:1 mapping and frame table, removing the largest
range of contiguous bits (below the most significant one) which are
zero for all valid MFNs from the MFN representation, to be used to
index into those arrays, thereby cutting the virtual range these
tables must cover approximately by half with each bit removed.

Since this should account for hotpluggable memory (in order to not
requiring a re-write when that gets supported), the determination of
which bits are candidates for removal must not be based on the E820
information, but instead has to use the SRAT. That in turn requires a
change to the ordering of steps done during early boot.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
18 files changed:
xen/arch/x86/e820.c
xen/arch/x86/mm.c
xen/arch/x86/mm/shadow/common.c
xen/arch/x86/mm/shadow/multi.c
xen/arch/x86/mm/shadow/private.h
xen/arch/x86/setup.c
xen/arch/x86/srat.c
xen/arch/x86/tboot.c
xen/arch/x86/x86_64/mm.c
xen/drivers/acpi/numa.c
xen/include/asm-x86/config.h
xen/include/asm-x86/mm.h
xen/include/asm-x86/numa.h
xen/include/asm-x86/page.h
xen/include/asm-x86/x86_32/page.h
xen/include/asm-x86/x86_64/page.h
xen/include/xen/acpi.h
xen/include/xen/mm.h